package com.mx.kn.cstf2.actions;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import java.util.Map;
import com.mx.kn.cstf2.dto.UsuarioDto;
import com.mx.kn.cstf2.service.LoginService;
import com.mx.kn.cstf2.utils.CstF2Exception;




import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

/**
 * @author Izhar Gamaliel Henandez Cruz
 * Programador Java Junior
 * Desarrollado para Kuehne + Nagel
 */

@Component("loginAction")
@Scope(value="session")

public class LoginAction extends ActionSupport {

	@Autowired	LoginService loginService;
	

    public static final String ERROR_SESSION = "errorSession";
    private UsuarioDto usuario = new UsuarioDto();

    //private ArrayList<TransitionBean>  transitionBeanM ;
    
    
    public UsuarioDto getUsuario() {
        return usuario;
    }

    public LoginAction() {
	}

	public void setUsuario(UsuarioDto usuario) {
        this.usuario = usuario;
    }
    
    public void LoginAction(){
//        MainAction mainAction = new MainAction();
    }
    private static final Integer exit=0;




    @Override
    public String execute() {
        ActionContext contexto = ActionContext.getContext();
        Map<String, Object> sesion = contexto.getSession();
        sesion.put("usuarioSession", usuario);

        try {
               
            usuario = loginService.validate(usuario);
            usuario = loginService.obtenerUsuarioIngreso(usuario);
            
            if (usuario != null) {
                
                sesion.put("usuarioSession", usuario);
                              
            } else {
     
                addFieldError("loginIncorrecto", "El usuario y/o password son incorrectos.");
                return ERROR_SESSION;
            }
        } catch (CstF2Exception ex) {
            
            addFieldError("loginIncorrecto", "Ocurrio un Error: " + ex.getMessage());
            return ERROR_SESSION;
        }
        
        return SUCCESS;
    }




}

